草庐IT

Python 文档测试 : result with multiple lines

全部标签

go - 在 go 中测试连接到 db 的处理程序

我有一个连接到数据库并检索记录的处理程序。我为此写了一个测试用例,它是这样的:main_test.gopackagemainimport("os""fmt""testing""net/http""net/http/httptest")varaAppfuncTestMain(m*testing.M){a=App{}a.InitializeDB(fmt.Sprintf("postgres://****:****@localhost/db?sslmode=disable"))code:=m.Run()os.Exit(code)}funcTestRulesetGet(t*testing.T){

mysql - 如何测试使用数据库(mysql)的 Go 代码?

我有一个使用MySQL的gRPC服务,需要在每个测试用例后清除记录。我尝试用事务来包装每个测试用例。如果我的rpc代码中没有事务,它就可以工作,但如果有,它就会失败。并且会出现如下错误:can'tstarttransaction...sql:Transactionhasalreadybeencommittedorrolledback然后我尝试使用truncate来清除记录,但一些测试用例随机失败。我的代码是这样的(我使用gorm):funcfoo(db*gorm.DB){tx:=db.Begin()//queryandinserttx.Commit()}//Usetransaction

go - 如何测试 Gin 应用程序中的主要功能?

如何测试funcmain?像这样:funcmain(){Engine:=GetEngine()//returnsginrouterwithhandlersatttachedEngine.Run(":8080")}它只有2行,但我想将它们覆盖。TestMain'是为测试准备保留的,这是否意味着测试main不是语言创建者计划的?我可以将内容移动到另一个函数mainReal但它似乎有些过度工程?如何测试gin是否启动良好?我可以在单独的goroutine中启动main,检查回复并停止它吗?谢谢。附言可能的重复不是精确的重复,因为它不是致力于测试funcmain()本身,而是致力于向外移动的想

unit-testing - 在 go 中正确测试 http 路由

我有5个端点,它们具有GET、POST和DELETE等方法来测试。我使用go的内置测试包编写了测试用例。我担心我遗漏了一些我不感兴趣的案例。我已经在代码审查中发布了我的测试用例进行审查,但我没有得到任何回应。我也关注了这个帖子TestingHTTProutesingolang.所有这些测试用例都在检查响应代码。问题是,我的大部分测试用例都遵循类似的模式,我以不同的格式发布数据并检查响应代码。我强烈觉得我错过了一些东西,当我将它推向产品时会破坏我的API。我需要对测试这些路由有一些了解,这样我才能有信心将API推向产品。main_test.gofuncTestSigHandler(t*t

mongodb - 在 mgo 中更新多个数组中的单个子文档

我有以下mongodb(3.4.x)文档,我使用mgo驱动程序在golang中编码{"id":"5981d4c2795a1b4a801ee027","scenarioId":"59804b10d8ee910085e33865","messages":[{"id":"5981d4c2795a1b4a801ee028","toQueue":[{"id":"5981d4c2795a1b4a801ee029","to":{"email":"some@email.com"},"channel":"EMAIL","toType":"EMAIL","status":{"id":1,"groupId"

mongodb - 使用 Golang 在 MongoDB 中无循环地更新文档

我有一个收集器模块,每30秒提取一次远程API。这为我提供了在MongoDB数据库中插入或更新的对象列表。{"id":"oulkhhvoiupokb","name":"test1","status":"OPEN"},{"id":"oulkhhvoisksbsjkkb","name":"test2","status":"CLOSED"}事实上,我只收集具有OPEN状态的对象。通过一个循环,我将对象的其余部分设置为关闭(因为它们不是打开的)。但是以后会需要很多时间,因为object的amont会越来越大。我使用Golang和MGO包。有没有办法更快更干净地完成它?比如为Mongo文档设置基

function - Golang 函数测试

我正在使用第三方库,它是一些C函数的包装器。不幸的是,几乎所有的Go函数都是免费的(它们没有接收器,它们不是方法);不是我会采用的设计方法,但它就是我所拥有的。仅使用Go的标准“测试”库:是否有一种解决方案允许我创建可以模拟函数的测试?或者是将库包装成结构和接口(interface),然后模拟接口(interface)来实现我的目标的解决方案?我创建了一个蒙特卡洛模拟,它也处理生成的数据集。我的一种评估算法会寻找特定模型,然后将其传递给第三方函数进行评估。我知道我的边缘情况并且知道调用计数应该是多少,这就是我想要测试的。也许只需要一个简单的计数器?我发现使用这个库的其他项目没有完全覆盖

Go - 集成测试使用测试数据库连接

go程序使用连接字符串连接到数据库。目前该连接字符串存储在环境变量中。我的挑战是编写一个自动化测试,针对测试数据库运行程序。我想我会在测试的init()函数中设置连接字符串环境变量,但是在测试init()之前调用了主程序的init()函数,所以这不起作用。解决方法似乎是将连接字符串默认为测试数据库。如果没有定义环境变量,则使用test;如果已定义(生产),则改用它。有替代方案吗?有没有更好的方法? 最佳答案 我目前的解决方案是使连接成为未初始化的全局连接。该函数检查连接是否为nil-如果是,则将其初始化。该测试有一个setup()函

elasticsearch - 如何有效地只获取文档的一个字段进行 Elasticsearch

我是elasticsearch的新手,遇到了一些技术难题。目前我有存储在每小时索引中的文档,它们是时间序列数据。我想弄清楚的是如何有效地只提取key字段值,它被定义为"key":{"type":"long"}.我最初尝试了天真的方法,即滚动浏览所有索引并提取字段,但显然这不会很快完成,每个每小时索引都有大约10M文档,滚动3个索引已经花费了很长时间。然后我来到termsaggregations,尝试将key字段作为聚合项:"aggregations":{"test_group":{"terms":{"field":"key","size":100000}}}这给了我更好的性能,但当用户

python - 如何在 Python 中计算字符串的 md5,类似于 Go 中的 "crypto/md5"

我知道有hashlib在Python中,但我想获得与下面的Go中相同的结果:packagemainimport("crypto/md5""fmt")funcmain(){data:=[]byte("12345")fmt.Println("sum",md5.Sum(data))}作为funcmd5.Sum描述,它计算“数据的MD5校验和”。但是,我在Python中找不到任何类似的函数。有没有办法像在Go中那样在Python中实现md5.Sum?上面程序的输出是一个slice而不是一个字符串:sum[3244185981728979115075721453575112]